ELBのIPアドレスリストをワンライナーで取得する
ELBのノード数はマネジメントコンソールのELBの画面からは確認できませんが、ENIに関してはマネジメントコンソールで確認することが出来ます。EC2サービスの[Network Interfaces]の所で検索ボックスにELBの[Load Balancer Name]を入力すると確認できます。
実際に確認してみたいと思います。まずは確認用にtest-elbという[Load Balancer Name]でELBを作ります。
次に[Network Interfaces]の所で検索ボックスにtest-elbと入力します。作ったばかりなのでENIが1つしかありませんが、ELB用のENIであることが[Description]から分かります。
ということで本題です。案件でELBのIPアドレスのリストを取得したいということがあったのでワンライナーを作りました。AWS-CLIとjqを使っています(最後のsortはお好みでご利用下さい)。
$ aws ec2 describe-network-interfaces --filters "Name=description,Values=${ELBのENIのDescription}" | jq -r '.NetworkInterfaces[] | .Association.PublicIp' | sort
${ELBのENIのDescription}の箇所を実際のELIのDescriptionの値に差し替えて下さい。${ELBのENIのDescription}の命名規則はELB ${ELBのLoad Balancer Name}となっているようです。
実際に試した結果は以下の通りです。今回は1ノードなので寂しい感じですが、アクセスが多いELBの場合は複数のIPアドレスが出力されるはずです。
$ aws ec2 describe-network-interfaces --filters "Name=description,Values=ELB test-elb" | jq -r '.NetworkInterfaces[] | .Association.PublicIp' | sort 54.64.65.XXX